function animate(obj, target, callback) {
    //先清除一次定时器
    clearInterval(obj.timer);
    obj.timer = setInterval(function () {
        //缓动动画公式   （目标距离 - 现在距离）/ 10
        // var step = (target - obj.offsetLeft) / 10;
        //js中要避免出现小数情况，需要取整
        // var step = Math.ceil((target - obj.offsetLeft) / 10);
        //可是，考虑到退回来出现负数的情况，取整情况有两种
        var step = (target - obj.offsetLeft) / 10;
        step = step > 0 ? Math.ceil((target - obj.offsetLeft) / 10) : Math.floor((target - obj.offsetLeft) / 10);
        //判断动画停止条件
        if (obj.offsetLeft == target) {
            clearInterval(obj.timer);
            //回调函数写在定时器结束之后
            //先判断有没有回调函数，如果有回调函数，则运行回调函数
            // if (callback) {
            //     callback();
            // }
            callback && callback();
        }
        obj.style.left = obj.offsetLeft + step + 'px';
    }, 10)
}